home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 12 / Mac Magazin and MacEasy Magazine CD - Issue 12.iso / Sharewarebibliothek / Anwendungen / Rest / Rainbow Demo / Appendices next >
Text File  |  1995-07-27  |  13KB  |  453 lines

  1.  
  2. ----------------------------------------------------------------------------
  3.  
  4.  
  5. Rainbow  -  An Atari 400/800/800XL Emulator for the Apple Macintosh
  6.  
  7.  
  8. ----------------------------------------------------------------------------
  9.  
  10.  
  11.  
  12.  
  13. Appendices
  14. ----------
  15.  
  16.  
  17.  
  18. A - Getting your ROMs/files onto your Mac
  19. -----------------------------------------
  20.  
  21. This is done in two steps - creating a disk file of the ROM image and then
  22. transferring over to the Mac.
  23.  
  24.  
  25.  
  26. Step One
  27. --------
  28.  
  29.  
  30. Creating a DOS file of the OS ROM image is simple. If you have a 400 or 800, the
  31. OS ROM is 10K in size. Run the following program
  32.  
  33.  
  34.  
  35.  5 REM CREATE 10K 400/800 ROM FILE - 10240 BYTES
  36.  
  37. 10 OPEN#1,8,0,"D:ROM10K"
  38.  
  39. 20 FOR K=55296 TO 65535 : PUT#1,PEEK(K) : NEXT K
  40.  
  41. 30 CLOSE #1
  42.  
  43.  
  44. which saves the ROM onto disk. For XL machines, run this. The ROM is 16K in size.
  45. Only the full shareware version emulates the 800XL.
  46.  
  47.  
  48.  5 REM CREATE 16K XL OS ROM FILE - 16384 BYTES
  49.  
  50. 10 OPEN#1,8,0,"D:ROM16K"
  51.  
  52. 20 FOR K=49152 TO 53247 : PUT#1,PEEK(K) : NEXT K
  53.  
  54. 30 POKE 54017,PEEK(54017)-128
  55.  
  56. 40 FOR K=20480 TO 22527 : PUT#1,PEEK(K) : NEXT K
  57.  
  58. 50 FOR K=55296 TO 65535 : PUT#1,PEEK(K) : NEXT K
  59.  
  60. 60 CLOSE #1
  61.  
  62.  
  63.  
  64. To create an image of BASIC use
  65.  
  66.  
  67.  5 REM CREATE 8K BASIC FILE - 8192 BYTES
  68.  
  69. 10 OPEN#1,8,0,"D:BASIC"
  70.  
  71. 20 FOR K=40960 TO 49151 : PUT#1,PEEK(K) : NEXT K
  72.  
  73. 30 CLOSE #1
  74.  
  75.  
  76.  
  77. Step Two
  78. --------
  79.  
  80.  
  81. That's the easy bit. This step involves transferring the files over to the Mac. 
  82. Luckily the modem port on the Mac is a RS232 port, so you'll need an 850 Interface
  83. Module...
  84.  
  85.  
  86.    [Atari computer] --> [850 Module]  ===== cable =====>  [Mac]
  87.  
  88.  
  89. and a cable. Don't worry, this cable is very easy to make.
  90.  
  91. Below is a diagram of the ports, looking INTO THE BACKS of the Mac and
  92. 850 unit.
  93.  
  94.  
  95.  
  96.       Mac 8 pin mini-modem             Atari 850 9 pin D connector
  97.  
  98.  
  99.          • 8     • 7     • 6                       • 5  • 4  • 3  • 2  • 1
  100.  
  101.         • 5      • 4      • 3                        • 9  • 8  • 7  • 6
  102.  
  103.              • 2     • 1
  104.  
  105.  
  106.      
  107. You only need to make 2 connections...
  108.  
  109.  
  110.      Mac modem                850 port (PORT 1)
  111.      ---------                -----------------
  112.  
  113.       PIN 8 (GND)                  PIN 5 (GND)
  114.       PIN 5 (RECEIVE DATA)         PIN 3 (SEND DATA)
  115.  
  116.  
  117.  
  118. Ideally you should make a cable with a 9-pin D connector, 8 pin mini DIN line plug
  119. and some 2 core electrical cable. But you can probably get away with just using 
  120. 2 pieces of insulated wire (about a metre in length) and pushing the ends 
  121. into the sockets.
  122.  
  123.  
  124. Now to send a file to the Mac. Type in the following program.
  125.  
  126.  
  127. 5 REM XFER - TRANSFER A FILE TO MAC
  128.  
  129. 10 POKE 559,0
  130.  
  131. 20 REM SET UP HEX TABLES FIRST
  132.  
  133. 25 DIM A(256),B(256)
  134.  
  135. 30 FOR K=0 TO 255
  136.  
  137. 40 HI=INT(K/16) + 48
  138.  
  139. 50 LO=(K-HI*16) + 48
  140.  
  141. 60 IF HI>57 THEN HI=HI+7
  142.  
  143. 70 IF LO>57 THEN LO=LO+7
  144.  
  145. 80 A(K+1)=HI
  146.  
  147. 90 B(K+1)=LO
  148.  
  149. 100 NEXT K
  150.  
  151. 110 REM
  152.  
  153. 200 REM NOW SEND THE FILE!
  154.  
  155. 210 OPEN #4,4,0,"D:ROM10K" : REM open file to send
  156.  
  157. 220 OPEN #7,8,0,"R1:"
  158.  
  159. 230 XIO 36,#7,14,0,"R1:"
  160.  
  161. 240 FOR  K=1 TO 10240 : REM send all the bytes in the file
  162.  
  163. 250 GET#4,BYTE
  164.  
  165. 260 PUT#7,A(BYTE+1)
  166.  
  167. 270 PUT#7,B(BYTE+1)
  168.  
  169. 280 NEXT K
  170.  
  171. 290 CLOSE #7
  172.  
  173. 300 CLOSE #4
  174.  
  175. 310 POKE 559,34
  176.  
  177.  
  178. Lines 25 to 100 set up hexadecimal character tables for bytes 0 to 255.
  179.  
  180. Line 5 switches off the screen which speeds up transfer by 33%. Line 310 turns
  181. it back on.
  182.  
  183. Lines 220 and 230 set up PORT 1 for output to the Mac at a transfer rate of 9600
  184. bits per second (baud rate). A loop then reads the file from disk a byte at 
  185. a time and sends it in hex to the Mac.
  186.  
  187. Lines 210 and 240 are set up above ready to transfer the 10K OS ROM file.
  188.  
  189. BUT DON'T RUN THIS YET!
  190.  
  191. You now need some kind of communications software for your Mac to receive the 
  192. data. My favourite is Zterm which is shareware and widely available.
  193. Set Zterm to 9600 baud rate. Make sure the 'capture' window is clean of
  194. all spurious text. 
  195.  
  196.  
  197. NOW REBOOT YOUR ATARI AND RUN THE TRANSFER PROGRAM.
  198.  
  199.  
  200. You should see the bytes displayed in the capture window in hex. The complete
  201. transfer will take some minutes. When finished, select entire text and save
  202. the selection with the name UNHEX.IN and place the file in the same folder as 
  203. the UNHEX application.
  204.  
  205. Finally launch UNHEX. This application reads UNHEX.IN and creates the binary
  206. file UNHEX.OUT, stripping any carriage returns (byte = 13) in UNHEX.IN.
  207.  
  208. Pay attention to the number of bytes unhexed... it should EXACTLY MATCH THE
  209. NUMBER SENT (see line 240 above). If not, repeat the entire process (quit Zterm 
  210. and re-boot your Atari just to be sure).
  211.  
  212. If the transfer is unreliable too often, try dropping the baud rate to 4800 in
  213. Zterm and change the 14 in line 230 to 13.
  214.  
  215. If it's the 400/800 OS, rename UNHEX.OUT as OP_SYSTEM. All being well, you 
  216. can launch Rainbow and get the blue 'Memo Pad' screen up.
  217.  
  218.  
  219. Hooray!
  220.  
  221.  
  222. The above technique can be used to transfer ANY file to the Mac. However, it is
  223. slow and better solutions are certainly possible. I couldn't get Zterm to receive
  224. binary files properly... transferring in hex avoids troublesome control
  225. characters but increases the file size by a factor of 2.
  226.  
  227. The above technique is fine for small files but larger ones can present real
  228. problems because it just takes so darn long, not to mention wear and tear on your
  229. drive and disks. You are encouraged to try out proper comms software, e.g. BobTerm 
  230. to speed up the transfer rate. Utilities like DisComm3 compress whole images 
  231. into DOS files which may prove useful.
  232.  
  233. Those with the full shareware version of Rainbow need only transfer the DOS.SYS
  234. and DUP.SYS files across to the Mac, use the IMPORT feature to paste them into
  235. the Bootable_Disk provided, and hey presto, one bootable DOS disk! See Manual
  236. for more details.
  237.  
  238. There's no reason why you can't transfer from the Mac to your Atari; only one
  239. extra connection is needed, i.e. Mac's PIN 3 to 850's PIN 4. However, it is
  240. VERY slow in BASIC.
  241.  
  242. You may require a full RS232 'handshaking' set-up (i.e. lines for 'Request 
  243. To Send' and 'Clear To Send') if you want to use BobTerm, for example. 
  244.  
  245. Here's a full pinout.
  246.  
  247.  
  248.      Mac modem                850 port (PORT 1)
  249.      ---------                -----------------
  250.  
  251.       PIN 8 (GND)                  PIN 5 (GND)
  252.       PIN 5 (RECEIVE DATA)         PIN 3 (SEND DATA)
  253.  
  254.       PIN 3 (SEND DATA)            PIN 4 (RECEIVE DATA)
  255.  
  256.       PIN 2 (CTS)                  PIN ? 
  257.       PIN 1 (RTS & DTR)            PIN ? (not sure about these...)
  258.       PIN 7 (CD)                   PIN ? 
  259.  
  260.  
  261. Please refer to your 850 manual for details BEFORE proceeding.
  262.  
  263.  
  264.  
  265.  
  266. B - Rainbow technical details
  267. -----------------------------
  268.  
  269.  
  270. For those who like to revel in technical specs, here's the list for Rainbow.
  271.  
  272. Hardware:
  273.  
  274.   • NMOS 6502 processor 
  275.   • Accepts 400/800 and 800XL OS 
  276.   • 48K RAM for 400/800 machines; full 64K RAM for 800XL
  277.   • NMI and IRQ interrupt emulation
  278.   • 8K and 16K cartridge support
  279.   • 16K Super Cartridge support
  280.   • Low level SIO emulation allows access to virtual disk images
  281.   • Supports single and enhanced density images and ATR images
  282.   • Disk drives D1: and D2: available
  283.   • Import/export files to and from your Mac hard disk
  284.   • Full keyboard
  285.  
  286. Graphics:
  287.  
  288.   • 256 Atari colours
  289.   • Complete playfield generation (ANTIC modes 2 to 15)
  290.   • Narrow, Normal and Wide playfields
  291.   • GTIA support giving 3 extra colour modes
  292.   • Colour artefacting in GRAPHICS 8
  293.   • Display List Interrupts  
  294.   • Player/Missile Graphics
  295.   • Full Player/Missile/Playfield collision detection
  296.   • Player/Missile priorities (mutually exclusive and non-exclusive)
  297.   • Fine scrolling
  298.   • PAL/NTSC screen option
  299.  
  300. Others:
  301.  
  302.   • POKEY timers 1, 2 and 4
  303.   • Sound with 4 channels of pure tones and improvised noise
  304.   • Four joysticks support using keypad
  305.   • Four paddles support using mouse  
  306.  
  307.  
  308.  
  309. Rainbow is coded entirely in C and developed with Symantec's Think C 6.0.
  310.  
  311. The PPC version was compiled with Metrowerk's CodeWarrior 5.
  312.  
  313.  
  314.  
  315.  
  316. C - Why won't this game work???
  317. -------------------------------
  318.  
  319.  
  320.  
  321. Okay, you've tried everything and your favourite game still won't run properly.
  322. Go through the following checklist.
  323.  
  324.   - Try the game with and without BASIC inserted. On the XL, keep the OPTION
  325.     key (Shift and num lock on the Mac) pressed to disable BASIC when re-booting.
  326.  
  327.   - Does it need an XL machine?
  328.  
  329.   - Does it need the very old 'A' version of the 400/800 OS? Some software did
  330.     do naughty things like jumping in and out of OS routines when they should 
  331.     have used vectors.
  332.  
  333.   - If you're trying to run a BINARY FILE, then the loader/DOS you use may affect
  334.     it. Some games I've tried simply won't run using the L option in Atari 
  335.     DOS 2.5 but do run successfully on another e.g. SmartDOS. The best loaders 
  336.     are the tiny ones which take only a second to boot up. Experiment and see 
  337.     which work best for you.
  338.  
  339.   - Some games may need the 'Every' frame option to work properly or for the
  340.     graphics to behave and look right.
  341.  
  342.   - Are you sure your file or disk image is not corrupted?
  343.  
  344.   - Turn 'Cheat Mode' off.
  345.  
  346.   - Have you got the correct joystick/paddle active?
  347.  
  348.   - If the screen seems unstable, try checking the the 'PAL' option under 
  349.     'TV' menu.
  350.  
  351.  
  352. If all this fails, then it's down to the limitations of the emulator. Although 
  353. Rainbow is a very good emulator, at the end of the day, it's just that... an 
  354. approximation of the real thing. 
  355.  
  356. Some games may include illegal (or undocumented) 6502 machine code instructions
  357. to protect the code against hackers. Since they are undocumented, their 
  358. behaviour is not well known but a good attempt has been made to include all of
  359. them in Rainbow, the information coming from a number of sources (with inevitable
  360. contradictions...). This is just another possible reason why some games won't
  361. run properly.
  362.  
  363.  
  364. However, stuff which works fine include Star Raiders, Gemstone Warrior, Joust, 
  365. Video Easel, Karateka, Jr Pacman, Sea Wolf 2, Zaxxon, Gumball, JaggiLines, 
  366. Donkey Kong Jr, Montezuma's Revenge, Pengo, Centipede, Tapper, Defender,
  367. Necromancer, Miner 2049er, Drol, DropZone, F15 Strike Eagle, Electrician,
  368. SmartDOS, Eastern Front, Gauntlet, Kaboom, AtariWriter, Music Composer,
  369. Donkey Kong, Mac/65, Action, World Karate, Pole Position 2, Super Cobra, 
  370. Jumpman and many more.
  371.  
  372.  
  373.  
  374.  
  375. D - The 'Atari computer crash' alert box
  376. ----------------------------------------
  377.  
  378.  
  379. Now and again, you will encounter this alert box. Although it looks horribly
  380. ominous, it's nothing to get worried about and no damage is done to Rainbow 
  381. or your Mac.
  382.  
  383. It means the CPU has just executed an illegal opcode which is known to freeze 
  384. the machine. So rather than let the emulator just sit there and do nothing, 
  385. it informs you of this.
  386.  
  387. The only way out of such a crash is to switch the emulator off and on, i.e.
  388. re-boot. 
  389.  
  390. If you hold the Control key down on the re-boot, the cartridge is removed and
  391. drive#1 turned off. This is useful to get out of a continual crash sequence,
  392. e.g. bad boot disk.
  393.  
  394. Pressing SYSTEM RESET to get out of a game can often result in a 'crash' 
  395. and is nothing to worry about. Pity Rainbow can't recreate some of those 
  396. spectacular graphics when a real 8 bit crashes... I used to sit there for hours
  397. engrossed in crashing the machine just to see the pretty colours.
  398.  
  399. Ahem...
  400.  
  401.  
  402.  
  403.  
  404. E - Rainbow icons
  405. ----------------
  406.  
  407.  
  408. Use ResEdit to get your existing files to display the colourful Rainbow icons.
  409. The creator code is 'RBOW' and useful types are 'DSKS', 'DSKE' and 'CART'. Leave
  410. the 'Inited' box unchecked on exit. The required icon should appear immediately on
  411. the Desktop (if it was generic before). Else you may have to re-build the desktop.
  412.  
  413. There are two extra icons, one for the folder and one for your OS file. If these
  414. appear as generic folder icons, you can get these bcak using ResEdit. Just choose
  415. 'Get Info' option and check the custom icon box.
  416.  
  417.  
  418.  
  419. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  420.  
  421.  
  422.  
  423. Roll credits...
  424. ---------------
  425.  
  426.  
  427. Many thanks to Barry Cantin for additional testing, encouragement, advice,
  428. coffee and chicory, hot sauce and just for being one cool guy. Cheers, Barry!
  429.  
  430. Thanks also to David Firth for help and advice; Bill Kendrick for help with 
  431. the icons and testing; Bertrand Le Roy for his kind permission to include
  432. the F.R.E.E. demo.
  433.  
  434. We wish to state formally that Rainbow has no affiliation with the heavy 
  435. metal band also called Rainbow (ex-Deep Purple and who did 'Since you've been gone') 
  436. nor any connection whatsoever with a children's TV programme here in 
  437. the U.K. under the same name of Rainbow (which featured Geoffrey, Bungle, George 
  438. and Zippy, whose mouth was a zip which you could zip up). Or D.H. Lawrence. 
  439. Our lawyers have been briefed.
  440.  
  441. Rainbow (C) Chris Lam 1995.
  442.  
  443. Made in Birmingham, England. 
  444.  
  445.  
  446. Bye for now and good luck with Rainbow!
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.